/*
 * Data.hpp
 *
 *  Created on: Oct 8, 2013
 *      Author: z1083248
 */

#ifndef DATA_HPP_
#define DATA_HPP_

#include "DataBase.hpp"
#include "Types.hpp"

namespace datastore
{

template<typename T>
class Data : public DataBase
{
public:
   explicit Data(const T &value) :
         DataBase(), value_()
   {
   }

   virtual ~Data()
   {
   }

   friend class Container;
   friend class Store;

private:
   Data() :
         DataBase(), value_()
   {
   }

   typename Types<T>::value_type value_;
};

}

#endif /* DATA_HPP_ */
